Physics engines, by allowing physics simulation, are at a cornerstone of many applications, including, but not limited to, real-time simulations such as video games, character animation tolls, operator training, robotics control and the like. A common thread in at least some of these applications is the need for realistic simulation maintaining stable behavior while limiting the processing power required. Limiting the processing power required may be an important aspect for real-time applications wherein an acceptable frame rate has to be maintained.
Simulation of constrained multi-body system systems is a challenge in computer animation. Fast and/or approximate methods have been a research topic since the early days of computer graphics. In some instances, it may be desirable to formulate and solve articulated systems in a minimal set of coordinates, such as joint coordinates. While a few physics engines implement joint coordinate solvers, physics engines commonly include constrained multi-body system solvers. As time stepping a constrained full body formulation may result in constraint violations, most solvers include either a Baumgarte feedback term as further detailed in Baumgarte (BAUMGARTE J.: Stabilization of constraints and integrals of motion in dynamical systems. Computer methods in applied mechanics and engineering 1, 1 (1972), 1-16.), a post step as further detailed in Ascher et al. (ASCHER U. M., PETZOLD L. R.: Computer methods for ordinary differential equations and differential-algebraic equations, vol. 61. Siam, 1998.) and/or fast iterative manifold projection as further detailed in Goldenthal et al. (GOLDENTHAL R., HARMON D., FATTAL R., BERCOVIER M., GRINSPUN E.: Efficient simulation of inextensible cloth. ACM Transactions on Graphics (TOG) 26, 3 (2007), 49.). However, when time steps, velocities, constraint forces and/or mass rations are large, simulations may exhibit large constraint errors and may become unstable.
According to known methods, maintaining stable behavior and acceptable real-time frame rate may require tuning physical parameters such as mass, stiffness and damping in order to produce stable behaviour across a broad range of simulation states. Drawbacks of the know methods may be that accuracy may be sacrificed and/or that the tuning of the physical parameters may require a large amount of manual effort from individuals who have good understanding of physics simulation (i.e., typically physics simulation experts). Attempts have been made to improve stability of simulations, in particular simulations relating to dynamic systems with stiff constraints as such simulations may generate transverse vibrations. One such attempt to, at least partially, address the problem of transverse vibrations generated by simulations of dynamic systems with stiff constraints is a constraint stabilization method proposed by Tournier et al. (TOURNIER M., NESME M., GILLES B., FAURE F.: Stable constrained dynamics. ACM Transactions on Graphics (TOG) 34, 4 (2015), 132.). The constraint stabilization method of Tournier et al. allows for time steps and mass ratios that are several orders of magnitude above the range supported by standard single-step methods. However, the constraint stabilization method of Tournier et al. may present some limits as it may, when being applied to rigid body simulation, introduce numerical issues which may affect efficiency of the simulation and may compromise real-time frame rates. In some instances, the intended physical behavior of the simulation may also be affected by dissipative forces.
Improvements are therefore still desirable.
The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches.